package com.ship.dispatch.service.shipBusiness;

import com.ship.common.business.service.BaseService;
import com.ship.common.core.web.domain.JsonResult;
import com.ship.dispatch.bean.fob.SpFobFileRecord;
import com.ship.dispatch.bean.shipBusiness.SmThirdPartyMeasure;
import com.ship.dispatch.bean.shipBusiness.SmThirdPartyMeasureRecord;
import com.ship.dispatch.bo.shipBusiness.ThirdPartyMeasureBo;
import com.ship.dispatch.bo.shipBusiness.ThirdPartyMeasureRecordBo;
import com.ship.dispatch.vo.shipReport.SynchronThirdPartyMeasureVo;
import com.ship.dispatch.vo.shipReport.ThirdPartyMeasureDetailAllVo;
import com.ship.dispatch.vo.shipReport.ThirdPartyMeasureDetailVo;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

public interface SmThirdPartyMeasureService extends BaseService<SmThirdPartyMeasure> {

    /**
     * 同步船务管理（第三方计量表）
     *
     * @param thirdPartyMeasureBo
     * @return
     */
    SynchronThirdPartyMeasureVo saveSmThirdPartyMeasure(ThirdPartyMeasureBo thirdPartyMeasureBo);

    /**
     * 同步船务管理（第三方计量--时间记录日志表）
     *
     * @param thirdPartyMeasureRecordBo
     * @return
     */
    SmThirdPartyMeasureRecord saveSmThirdPartyMeasureRecord(ThirdPartyMeasureRecordBo thirdPartyMeasureRecordBo);

    /**
     * 船务管理-第三方计量详情
     * @param id
     * @return
     */
    ThirdPartyMeasureDetailAllVo selectThirdPartyMeasureDetail(Long id, List<SpFobFileRecord> fileRecords);

    /**
     * 船务管理-第三方计量详情导出
     *
     * @param id
     * @return
     */
    JsonResult exportThirdPartyMeasureDetail(String templateUrl,Long id, List<SpFobFileRecord> fileRecords, String fileServerHost);

    /**
     * 船务管理第三方计量列表详情导出
     * @param templateUrl
     * @param ids
     * @param fileRecords
     * @param fileServerHost
     * @param listUrl
     * @param listName
     * @return
     */
    JsonResult pageExportAll(String templateUrl, List<Long> ids, List<SpFobFileRecord> fileRecords, String fileServerHost,String listUrl,String listName) throws IOException;

}
